如何使用Composer和Packagist為PHP社區創建軟件包(或更新軟件包)做出貢獻。首先,如果您是PHP開發人員,但還不知道什麼是Composer,請看一下為什麼應該使用Composer以及如何開始使用它來獲取更多信息。
使用作曲家
Composer是PHP的軟件包管理器。您可以使用社區開發的軟件包,也可以為您的軟件包做出貢獻。在這裡,我將展示如何創建一個項目/程序包,在其中安裝Composer並發送給Packagist,其他開發人員可以在他們的項目中使用它。
創建包裝
您可以創建一個新項目或更新一個項目以使用Composer。我將創建一個世界一流的問候。這是一個簡單的類,但是您可以創建複雜的項目並與其他開發人員共享。我將使用“ hello-world”作為項目的名稱。作曲家使用“供應商/包裝”名稱格式。在這裡,我們可以將項目名稱命名為“ vendor”,將我的名字命名為“ juniorgrossi”,並將程序包名稱命名為“ hello-world”。
文件結構
您可以將所有文件放在主目錄中,但是我強烈建議創建另一個目錄,即“ src”,以便於理解和維護代碼。項目結構將從以下內容開始:hello - world / src / HelloWorld / SayHello.php。我們的SayHello.php 文件將具有:
- <?php
- 命名空間HelloWorld;
- SayHello 類
- {
- 公共靜態函數世界()
- {
- 返回“ Hello World,作曲家!” ;
- }
- }
啟動作曲家
項目準備就緒後,我們可以在其中“安裝” Composer。這只是在根目錄下創建一個“ composer.json”文件,但是Composer可以為您做到這一點。在項目根目錄下:composer init您將收到以下Composer響應:
- Macbook:Hello-World Grossi $作曲家init
- 歡迎使用Composer配置生成器
- 該命令將指導您創建composer.json配置。
- 軟件包名稱(/)[juniorgrossi / hello-world]:
- 您可以接受默認值,也可以自定義默認值,例如“您的姓名/您好” 或所需的內容。完成所有Composer問題,例如:
- 軟件包名稱(/)[juniorgrossi / hello-world]:juniorgrossi / hello-world
- 說明[]:我的第一個Composer項目
- 作者[初級Grossi ]:您的姓名
- 最小穩定性[]:dev
- 定義您的依賴項。
- 您是否想以交互方式定義您的依賴項(需要)[是]?沒有
- 您想以交互方式定義您的開發依賴項(require-dev)嗎?沒有
- {
- “ name” :“ juniorgrossi / hello-world” ,
- “ description” :“我的第一個Composer項目” ,
- “作者” :[
- {
- “ name” :“您的名字” ,
- “電子郵件” :“ [email protected]”
- }
- ],
- “ minimum-stability” :“ dev” ,
- “要求” :{
- }
- }
- 您確認生成[是]嗎?是
現在,您已經在根目錄中保存了“ composer.json”文件。幾乎準備就緒,但我們必須做一些更改:
- {
- “ name” :“ juniorgrossi / hello-world” ,
- “ description” :“我的第一個Composer項目” ,
- “作者” :[
- {
- “ name” :“您的名字” ,
- “電子郵件” :“ [email protected]”
- }
- ],
- “ minimum-stability” :“ dev” ,
- “要求” :{
- “ php” :“> = 5.3.0”
- },
- “自動加載” :{
- “ psr-0” :{
- “ HelloWorld” :“ src /”
- }
- }
- }
我們在這裡所做的是添加有關PHP 5.3的信息作為最低要求(“ 要求”部分),並告訴Composer “自動加載”(使用PSR-0)“ src”目錄中具有“ HelloWorld”命名空間的所有文件。
測試包
舒爾,我們想做一個簡單的測試來驗證我們的課是否運作良好。您可以創建一個新項目並在其中“粘貼”您的類,或者在您自己的項目中進行測試,這樣會更好,更容易。我們正在創建一個Composer項目,因此我們必須在項目內部安裝Composer文件。因此,在根目錄下運行“ composer install”進行安裝:
- 作曲家安裝
由於“ composer.json”中只有“ php> = 5.3.0”,因此Composer將僅安裝其自己的文件。安裝Composer後,在您的根目錄下創建一個“ tests”目錄。使用以下內容在其中創建“ test.php”文件:
- <?php
- require_once __DIR__ 。'/../vendor/autoload.php' ; //使用Composer自動加載功能自動加載文件
- 使用HelloWorld \ SayHello;
- 迴聲SayHello :: world ();
轉到終端(或在“ tests”目錄中創建一個PHP Web服務器)並輸入:
- PHP測試/ test.php
您將看到“ Hello World,Composer!”。現在正在工作。
發送到Packagist.org
現在您的項目正在運行,您想將其發送給Packagist。最簡單的方法是使用Git 將項目推送到Github。轉到Github並創建一個名為“ helloworld”的新公共倉庫,在您的根目錄下啟動Git項目並將其推送:
- git初始化
- git添加
- git commit -m “第一次提交”
- git remote add origin [email protected]:用戶名/helloworld.git
- git push origin master
現在,您將項目放入Github存儲庫中,並準備將其發送給Packagist。轉到Packagist網站,創建您的帳戶,登錄並提交包裹。Packagist'll要求您提供存儲庫URL(Git / Svn / Hg)。粘貼到[email protected]:username / helloworld.git 並單擊“檢查!”。Packagist將檢查您的項目並返回項目名稱。如果正確,請接受。
包裝專家詳細信息
每次對Github進行新提交時,都必須更新Packagist。轉到您的帳戶,您的包裹,然後單擊“強制更新!”。Packagist將前往Github並更新資源。您可以打開“自動更新”,轉到您的Github存儲庫,單擊“服務掛鉤”後的“設置”,然後單擊“打包程序”服務。有您的信息更新,例如:
- 用戶:您的Packagist用戶名,例如juniorgrossi
- 令牌:您的API令牌,可以在Packagist設置鏈接中找到
- 域: packagist.org好!自動更新完成,您的軟件包可供其他開發人員使用。
我們的第一個Composer軟件包已完成,但是您可以使用它做更多的事情。謝謝!